# -*- coding: utf-8 -*-
import scrapy

from doubanbook.items import DoubanbookItem


class DbbookSpider(scrapy.Spider):
    name = 'dbbook'
    allowed_domains = ['https',
                       'https://docs.scrapy.org/en/latest/']
    start_urls = ['https://docs.scrapy.org/en/latest/_static/selectors-sample1.html']
    custom_settings = {
        'ITEM_PIPELINES': {'doubanbook.pipelines.DoubanbookPipeline': 1, },
    }

    def parse(self, response):
        pass
        # print(response.body)
        selector = scrapy.Selector(response)
        print(selector.xpath('/html/head/title/text()').extract()[0])  # 取text内容
        print(selector.xpath('/html/head/base').extract()[0])  # 选择绝对路径/html/body/div/a的a标签
        # print(selector.xpath('/html/head/base/@href').extract()[0])#选择某一个html标签的某一个属性
        # print(selector.xpath('//div[@id]/a[@href]').extract())#选择所有的具有id属性的div下的子节点（具有href属性的a）
        # print(selector.xpath('//div[@id]/a[@href][position()<3]').extract())  # （选取最前面的两个）的具有id属性的div下的子节点（具有href属性的a）
        # print(selector.xpath('//div[@id]//a[@href]').extract())  # 选择所有的具有id属性的div下的子孙节点（具有href属性的a）
        # print(response.xpath('//a[contains(@href, "im")]/@href').extract())#所有具有href属性，且属性的值里面有im的A的所有href属性
        # print(response.xpath('//a[@href="image2.html"]/@href').extract())#所有的具有@href="image2.html"属性a的href属性
        # print(selector.xpath('//div[@id]/img]').extract())  # 报错（没有img元素）
        # print(selector.xpath('//div[@id]/]').extract())  # 报错
        # print(selector.xpath('//div[@id]/*]').extract())  # 报错
        stock_item = DoubanbookItem()
        for each in selector.xpath('//div[@id]/a[@href]'):
            print('img' + each.xpath('.//img').extract()[0])
            print('链接:' + each.xpath('./@href').extract()[0])
            print('名称:' + each.xpath('./text()').extract()[0])
            print('图片:' + each.xpath('img/@src').extract()[0])
            stock_item['ljie'] = each.xpath('./@href').extract()[0]
            stock_item['name'] = each.xpath('./text()').extract()[0]
            stock_item['pic'] = each.xpath('img/@src').extract()[0]

            yield stock_item
            # yield Request(url='https://docs.scrapy.org/en/latest/', dont_filter=True,
            #               callback=self.my)

    def my(self, response):
        print('mytest')
        # selector = scrapy.Selector(response)
        # print(selector.xpath('//div[@id]').extract())  # 报错
